The present invention relates in general to data processing, and in particular, to input/output (I/O) in a data processing system.
A data processing system may include multiple processing elements and multiple input/output adapters (IOAs) to support connections to communication networks, storage devices and/or storage networks, and peripheral devices. In such data processing systems, the hardware resources of the data processing system may be logically partitioned into multiple, non-intersecting sets of resources, each controlled by a respective one of multiple possibly heterogeneous operating system instances. The operating systems concurrently execute on this common hardware platform in their respective logical partitions (LPARs) under the control of system firmware, which is referred to as a virtual machine monitor (VMM) or hypervisor. Thus, the hypervisor allocates each LPAR a non-intersecting subset of the resources of the data processing system, and each operating system instance in turn directly controls its distinct set of allocable resources, such as regions of system memory and IOAs.
In general, the IOAs in a data processing system employ an I/O address space that is distinct from the physical (real) address space utilized to address system memory in the data processing system. Consequently, address translation tables, referred to in the art as translation control entry (TCE) tables, are employed to translate addresses between the I/O address space and the real address space of the data processing system.